package utils

import (
	"encoding/json"
	"fmt"
	"github.com/valyala/fasthttp"
)

// 用户信息
func GetSendCloudUserInfo() {
	url := "http://api.sendcloud.net/apiv2/userinfo/get"
	data := &fasthttp.Args{}
	data.Add("apiUser", app.SendCloud.ApiUser)
	data.Add("apiKey", app.SendCloud.ApiKey)

	// 发送请求
	status, resp, err := fasthttp.Post(nil, url, data)
	fmt.Println(status)
	fmt.Println(string(resp))
	fmt.Println(err)
}

// 发送邮件 | 系统通知
type SendCloudEmailResp struct {
	Result     bool                `json:"result"`
	StatusCode int                 `json:"statusCode"`
	Message    string              `json:"message"`
	Info       map[string][]string `json:"info"`
}

func SendMailBySendCloud(to string, subject string, html string) bool {
	var res SendCloudEmailResp
	url := "https://api.sendcloud.net/apiv2/mail/send"
	data := &fasthttp.Args{}
	data.Add("apiUser", app.SendCloud.ApiUser)
	data.Add("apiKey", app.SendCloud.ApiKey)
	data.Add("from", "sofuny@sendclound.sofuny.cn")
	data.Add("to", to)
	data.Add("subject", subject)
	data.Add("html", html)
	data.Add("fromName", "超有趣")

	// 发送请求
	status, resp, err := fasthttp.Post(nil, url, data)
	// 判断返回值
	if status != 200 {
		return false
	}
	// 请求错误
	if err != nil {
		return false
	}
	// 解析返回值
	err = json.Unmarshal([]byte(string(resp)), &res)
	if err != nil {
		return false
	}
	// 发送成功
	if res.Result || res.StatusCode == 200 {
		return true
	}
	return false
}
